/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package administracion.managedBeans.pedidos;
import Entities.ItemProducto;
import Entities.Producto;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import util.PageCodeGenerico;

@ManagedBean
@ViewScoped
public class PCPedido extends PageCodeGenerico{
    private String idInternoData;
    private String idFormTabla;
    private List<ItemProducto> pedido;

    /**
     * Creates a new instance of PCPedido
     */
    public PCPedido() {
        
    }
    public String getIdInternoData() {
        return idInternoData;
    }

    public void setIdInternoData(String idInternoData) {
        this.idInternoData = idInternoData;
    }

    public String getGetIdFormTabla() {
        return idFormTabla;
    }

    public void setGetIdFormTabla(String getIdFormTabla) {
        this.idFormTabla = getIdFormTabla;
    }

    public String getIdFormTabla() {
        return idFormTabla;
    }

    public void setIdFormTabla(String idFormTabla) {
        this.idFormTabla = idFormTabla;
    }

    public List<ItemProducto> getPedido() {
        return pedido;
    }

    public void setPedido(List<ItemProducto> pedido) {
        this.pedido = pedido;
    }
    
    /**
     * Agrega al pedido que se utiliza para pedidos externos e internos un
     * producto
     * @param p 
     */
     public void agregarAPedido(Producto p) {
        if (pedido == null) {
            pedido = new ArrayList<>();
        }
        boolean encontrado = false;
        for (Iterator<ItemProducto> it = pedido.iterator(); it.hasNext();) {
            ItemProducto item = it.next();
            if (item != null && item.getProducto() != null && item.getProducto() == p) {
                item.setCantidad(item.getCantidad() + 1);
                encontrado = true;
                break;
            }
        }
        if (!encontrado) {
            pedido.add(new ItemProducto(1, p, p.getPrecio()));
        }
    }

     /**
      * Quita un producto de la lista.
      * @param p 
      */
    public void quitarDePedido(Producto p) {
        if (pedido == null) {
            pedido = new ArrayList<>();
        }
        for (Iterator<ItemProducto> it = pedido.iterator(); it.hasNext();) {
            ItemProducto item = it.next();
            if (item != null && item.getProducto() != null && item.getProducto() == p) {
                item.setCantidad(item.getCantidad() - 1);
                if (item.getCantidad() == 0) {
                    pedido.remove(item);
                }
                break;
            }
        }
    }
    
}
